main menu

; remap to guncon ID
800331a8 : 90C30001  LBU     04000000 (v1), 0001 (80012f00 (a2)) [80012f01]
800331ac : 34020031  ORI     80051c98 (v0), 00000000 (r0), 0031 (49),
800331b0 : 1462007C  BNE     00000063 (v1), 00000031 (v0), 800333a4,
800331b4 : 34020041  ORI     00000031 (v0), 00000000 (r0), 0041 (65),


; just remap buttons here
800331b8 : 3C038005  LUI     00000031 (v1), 8005 (32773),
800331bc : 84631E88  LH      80050000 (v1), 1e88 (80050000 (v1)) [80051e88]
800331c0 : 34020003  ORI     00000041 (v0), 00000000 (r0), 0003 (3),
800331c4 : 1062012A  BEQ     00000000 (v1), 00000003 (v0), 80033670,
800331c8 : 00041040  SLL     00000003 (v0), 00000000 (a0), 01 (1),
800331cc : 00542021  ADDU    00000000 (a0), 00000000 (v0), 80051ad0 (s4),
800331d0 : 84830000  LH      00000000 (v1), 0000 (80051ad0 (a0)) [80051ad0]
800331d4 : 34020004  ORI     00000000 (v0), 00000000 (r0), 0004 (4),
800331d8 : 1062000A  BEQ     00000000 (v1), 00000004 (v0), 80033204,
800331dc : 34020001  ORI     00000004 (v0), 00000000 (r0), 0001 (1),
800331e0 : 3C018005  LUI     80050000 (at), 8005 (32773),
800331e4 : A4221D08  SH      00000001 (v0), 1d08 (80050000 (at)) [80051d08]
800331e8 : 34020004  ORI     00000001 (v0), 00000000 (r0), 0004 (4),
800331ec : A4820000  SH      00000004 (v0), 0000 (80051ad0 (a0)) [80051ad0]





12f01 = ID
12f02 = buttons
12f03 = buttons
12f05 = latch state


; check justifier ID --> guncon ID
80074e80 : 90C30001  LBU     00000001 (v1), 0001 (80012f00 (a2)) [80012f01]
80074e84 : 34020031  ORI     800b6fb0 (v0), 00000000 (r0), 0031 (49),
80074e88 : 1462007C  BNE     00000031 (v1), 00000031 (v0), 8007507c,
80074e8c : 34020041  ORI     00000031 (v0), 00000000 (r0), 0041 (65),


; --> Remap buttons here
80074e90 : 3C03800B  LUI     00000031 (v1), 800b (32779),
80074e94 : 846373A0  LH      800b0000 (v1), 73a0 (800b0000 (v1)) [800b73a0]
80074e98 : 34020003  ORI     00000041 (v0), 00000000 (r0), 0003 (3),
80074e9c : 1062012A  BEQ     00000002 (v1), 00000003 (v0), 80075348,
80074ea0 : 00041040  SLL     00000003 (v0), 00000000 (a0), 01 (1),
80074ea4 : 00542021  ADDU    00000000 (a0), 00000000 (v0), 800b6b70 (s4),
80074ea8 : 84830000  LH      00000002 (v1), 0000 (800b6b70 (a0)) [800b6b70]
80074eac : 34020004  ORI     00000000 (v0), 00000000 (r0), 0004 (4),
80074eb0 : 1062000A  BEQ     00000004 (v1), 00000004 (v0), 80074edc,
80074eb4 : 34020001  ORI     00000004 (v0), 00000000 (r0), 0001 (1),
80074edc : 02113821  ADDU    800b68d0 (a3), 00000000 (s0), 800b6d60 (s1),
80074ee0 : 3C05800B  LUI     800b67a0 (a1), 800b (32779),
80074ee4 : 24A56DC0  ADDIU   800b0000 (a1), 800b0000 (a1), 6dc0 (28096),
80074ee8 : 8CE20000  LW      00000001 (v0), 0000 (800b6d60 (a3)) [800b6d60]
80074eec : 02052821  ADDU    800b6dc0 (a1), 00000000 (s0), 800b6dc0 (a1),
80074ef0 : 00C04021  ADDU    800b6c40 (t0), 80012f00 (a2), 00000000 (r0),
80074ef4 : ACA20000  SW      00000000 (v0), 0000 (800b6dc0 (a1)) [800b6dc0]






; latch reset - offscreen (00) / onscreen (01+)
8001daf4 : 8CF80000  LW      00000000 (t8), 0000 (800b68d0 (a3)) [800b68d0]
8001daf8 : 10400026  BEQ     00000000 (v0), 00000000 (r0), 8001db94,
--> remove this
8001dafc : A3020000  SB      00000000 (v0), 0000 (80012f05 (t8)) [80012f05]




; y-center = $74 (116 --> 232)
; x-center = $100 (256 --> 512)




80074f78 : 91050005  LBU     00000000 (a1), 0005 (80012f00 (t0)) [80012f05]
80074f7c : 00003021  ADDU    00000000 (a2), 00000000 (r0), 00000000 (r0),
80074f80 : 00003821  ADDU    800b6d60 (a3), 00000000 (r0), 00000000 (r0),
80074f84 : 00A01021  ADDU    00000000 (v0), 000000ff (a1), 00000000 (r0),
80074f88 : 00021400  SLL     000000ff (v0), 000000ff (v0), 10 (16),
80074f8c : 1040000C  BEQ     00ff0000 (v0), 00000000 (r0), 80074fc0,


; offset address = (latch mult-1) * 4
; - $01 = 12f06 (y) / 12f08 (x)
; - $8c ~ y-center (140)
; - $400 ~ x-center (x / $672 ~ 1650)
80074f90 : 24A5FFFF  ADDIU   000000ff (a1), 000000ff (a1), ffff (65535),
80074f94 : 00051400  SLL     00ff0000 (v0), 000000fe (a1), 10 (16),
80074f98 : 00021383  SRA     00fe0000 (v0), 00fe0000 (v0), 0e (14),
80074f9c : 01021021  ADDU    000003f8 (v0), 80012f00 (t0), 000003f8 (v0),


; a2 = y-axis // a3 = x-axis
80074fa0 : 94440008  LHU     00000000 (a0), 0008 (800132f8 (v0)) [80013300]
80074fa4 : 00A01821  ADDU    00000000 (v1), 000000fe (a1), 00000000 (r0),
80074fa8 : 24A5FFFF  ADDIU   000000fe (a1), 000000fe (a1), ffff (65535),

80074fac : 94420006  LHU     800132f8 (v0), 0006 (800132f8 (v0)) [800132fe]
80074fb0 : 00031C00  SLL     000000fe (v1), 000000fe (v1), 10 (16),
80074fb4 : 00C43021  ADDU    00000000 (a2), 00000000 (a2), 00002978 (a0),
80074fb8 : 1460FFF6  BNE     00fe0000 (v1), 00000000 (r0), 80074f94,
80074fbc : 00E23821  ADDU    00000000 (a3), 00000000 (a3), 00003430 (v0),

; x-scale #1
80074fc0 : 91020005  LBU     000000ef (v0), 0005 (80012f00 (t0)) [80012f05]
80074fc4 : 00000000  NOP    
80074fc8 : 00C2001B  DIVU    00409b73 (a2), 000000ff (v0),
80074fcc : 14400002  BNE     000000ff (v0), 00000000 (r0), 80074fd8,
80074fd0 : 00000000  NOP    
80074fd8 : 00003012  MFLO    00409b73 (a2), 000040dc (lo),

; y-scale #1
80074fdc : 00E2001B  DIVU    0033019a (a3), 000000ff (v0),
80074fe0 : 14400002  BNE     000000ff (v0), 00000000 (r0), 80074fec,
80074fe4 : 00000000  NOP    
(..)
80074fec : 00003812  MFLO    0033019a (a3), 00003334 (lo),

; x-scale here + y-centering (remove)
80074ff0 : 34020672  ORI     000000ff (v0), 00000000 (r0), 0672 (1650),
80074ff4 : 24C6FF74  ADDIU   000040dc (a2), 000040dc (a2), ff74 (65396),
--> remove math (sll $0)
80074ff8 : 00061A40  SLL     00000000 (v1), 00004050 (a2), 09 (9),
80074ffc : 0062001B  DIVU    0080a000 (v1), 00000672 (v0),
80075000 : 14400002  BNE     00000672 (v0), 00000000 (r0), 8007500c,
80075004 : 00000000  NOP    
(..)
8007500c : 00003012  MFLO    00004050 (a2), 000013f4 (lo),
(..)

; x-adjust (remove)
80075030 : 24E7FFF0  ADDIU   000000e0 (a3), 000000e0 (a3), fff0 (65520),
